/*
 * detection.h
 *
 *  Created on: 24/mag/2011
 *      Author: giosue86
 */

#ifndef DETECTION_H_
#define DETECTION_H_

#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/highgui/highgui_c.h"
#include <stdio.h>


/* Struttura Dati che rappresenta un pallone.
 * Contiene l'ellissi che approssima il pallone, la sua area, la distanza (in pixel) del centro
 * dell'ellissi (rispetto il punto origin della detection ) e l'angolo*/
typedef struct balloon{
	CvBox2D ellipse;
	double angle;
	int distance;
	float area;
}Balloon;

/* Rileva dal frame src i palloni che rientrano nel range di colori desiderati (hsv_min,hsv_max,hsv_min2,hsv_max2);
 * Restituisce il numero di palloni trovati e memorizza le informazioni dei palloni nel vettore balloons */
int detection(IplImage* src, IplImage* dest, IplImage* th, Balloon balloons[], CvScalar hsv_min, CvScalar hsv_max,CvScalar hsv_min2, CvScalar hsv_max2, CvPoint origin);

/* Rileva una componente di pixel gialli all'interno del ROI dell'immagine src.
 * Restituisce true se rientra nella percentuale di pixel gialli thPercent,
 * altrimenti false.
 */
bool colorDetection(IplImage* src,CvScalar hsv_min, CvScalar hsv_max, CvScalar hsv_min2,
		CvScalar hsv_max2, CvPoint origin, int heightROI, int widthROI, int thPercent);
#endif /* DETECTION_H_ */
